package feevale.boteco.util;

import java.util.Random;

import feevale.boteco.bean.Geladeira;

abstract public class Agente implements Runnable {
	
	/**
	 * Define a regra que cada agente irá implementar quando abrir a geladeira.
	 * @param geladeira
	 */
    public abstract void abreGeladeira(Geladeira geladeira);
	
    /**
     * Define a regra que cada agente irá implementar quando fechar a geladeira.
     * @param geladeira
     */
    public abstract void fechaGeladeira(Geladeira geladeira);
    
    /**
     * Define o nome do agente.
     * @return
     */
    public abstract String getNome();
    
    /**
	 * Retorna um valor randomico entre um intervalor de valores para definição de tempos.
	 * @param minValue
	 * @param maxValue
	 * @return
	 */
	protected static Double getTime(Integer minValue, Integer maxValue) {
		return (minValue + ((maxValue - minValue) * new Random().nextDouble())) * 1000;
	}

}
